﻿using HZU.ZP.Data.Interfaces;
using HZU.ZP.Data.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HZU.ZP.Data.Impl
{
    public class NoticeDao : INoticeDao
    {
        private EFCoreDbContext _context;
        public NoticeDao(EFCoreDbContext context)
        {
            _context = context;
        }
        public void Add(Notice notice)
        {
            _context.Notices.Add(notice);
            _context.SaveChanges();
        }

        public void Delete(int id)
        {
            var notice = _context.Notices.FirstOrDefault(e => e.Id == id);
            _context.Notices.Remove(notice);
            _context.SaveChanges();
        }

        public Notice GetById(int id)
        {
            return _context.Notices.FirstOrDefault(e => e.Id == id);
        }

        public int GetCount()
        {
            return _context.Notices.Count();
        }

        public IList<Notice> GetList(int pageIndex)
        {
            return _context.Notices.Skip((pageIndex-1) *20).Take(20).ToList();
        }

        public void Update(Notice notice)
        {
            _context.Notices.Update(notice);
            _context.SaveChanges();
        }
    }
}
